﻿using System;
using System.ComponentModel;
using System.Runtime.InteropServices;

namespace Teigha.Core
{
	public class OdGiLayerTraitsTaker : OdGiLayerTraits_
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public OdGiLayerTraitsTaker(IntPtr cPtr, bool cMemoryOwn) : base(GlobalsPINVOKE.OdGiLayerTraitsTaker_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(OdGiLayerTraitsTaker obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		~OdGiLayerTraitsTaker()
		{
			this.Dispose();
		}

		public override void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							GlobalsPINVOKE.delete_OdGiLayerTraitsTaker(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
			base.Dispose();
		}

		private OdGiSubEntityTraits pTraits1
		{
			get
			{
				if (this.pSETraits == null)
				{
					this.pSETraits = new OdGiSubEntityTraits_Internal(OdGiLayerTraitsTaker.OdGiLayerTraitsTaker_OdGiSubEntityTraits_Upcast(this.swigCPtr.Handle), false);
				}
				return this.pSETraits;
			}
		}

		public virtual void setFillPlane(OdGeVector3d pNormal)
		{
			this.pTraits1.setFillPlane(pNormal);
		}

		public virtual void setFillPlane()
		{
			this.pTraits1.setFillPlane();
		}

		public virtual bool fillPlane(OdGeVector3d normal)
		{
			return this.pTraits1.fillPlane(normal);
		}

		public virtual void addLight(OdDbStub lightId)
		{
			this.pTraits1.addLight(lightId);
		}

		public void setRefView(OdGiBaseVectorizer pRefView)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setRefView(this.swigCPtr, OdGiBaseVectorizer.getCPtr(pRefView));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void reset()
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_reset(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new LineWeight lineweight()
		{
			LineWeight result = (LineWeight)GlobalsPINVOKE.OdGiLayerTraitsTaker_lineweight(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new OdDbStub linetype()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiLayerTraitsTaker_linetype(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new PlotStyleNameType plotStyleNameType()
		{
			PlotStyleNameType result = (PlotStyleNameType)GlobalsPINVOKE.OdGiLayerTraitsTaker_plotStyleNameType(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new OdDbStub plotStyleNameId()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiLayerTraitsTaker_plotStyleNameId(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new OdDbStub materialId()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiLayerTraitsTaker_materialId(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void setColor(OdCmEntityColor color)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setColor__SWIG_0(this.swigCPtr, OdCmEntityColor.getCPtr(color));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new void setLineweight(LineWeight lineweight)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setLineweight(this.swigCPtr, (int)lineweight);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new void setLinetype(OdDbStub pLinetypeId)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setLinetype(this.swigCPtr, OdDbStub.getCPtr(pLinetypeId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setPlotStyleName(PlotStyleNameType plotStyleNameType, OdDbStub pPlotStyleNameId)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setPlotStyleName__SWIG_0(this.swigCPtr, (int)plotStyleNameType, OdDbStub.getCPtr(pPlotStyleNameId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setPlotStyleName(PlotStyleNameType plotStyleNameType)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setPlotStyleName__SWIG_1(this.swigCPtr, (int)plotStyleNameType);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool isOff()
		{
			bool result = GlobalsPINVOKE.OdGiLayerTraitsTaker_isOff(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setOff(bool bVal)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setOff(this.swigCPtr, bVal);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool isPlottable()
		{
			bool result = GlobalsPINVOKE.OdGiLayerTraitsTaker_isPlottable(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setPlottable(bool bVal)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setPlottable(this.swigCPtr, bVal);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdCmEntityColor trueColor()
		{
			OdCmEntityColor result = new OdCmEntityColor(GlobalsPINVOKE.OdGiLayerTraitsTaker_trueColor(this.swigCPtr), true);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdDbStub layer()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiLayerTraitsTaker_layer(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdDbStub lineType()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiLayerTraitsTaker_lineType(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiFillType fillType()
		{
			OdGiFillType result = (OdGiFillType)GlobalsPINVOKE.OdGiLayerTraitsTaker_fillType(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual LineWeight lineWeight()
		{
			LineWeight result = (LineWeight)GlobalsPINVOKE.OdGiLayerTraitsTaker_lineWeight(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual double lineTypeScale()
		{
			double result = GlobalsPINVOKE.OdGiLayerTraitsTaker_lineTypeScale(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual double thickness()
		{
			double result = GlobalsPINVOKE.OdGiLayerTraitsTaker_thickness(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdDbStub material()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiLayerTraitsTaker_material(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiMapper mapper()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiLayerTraitsTaker_mapper(this.swigCPtr);
			OdGiMapper result = (intPtr == IntPtr.Zero) ? null : new OdGiMapper(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdDbStub visualStyle()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiLayerTraitsTaker_visualStyle(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new OdCmTransparency transparency()
		{
			OdCmTransparency result = new OdCmTransparency(GlobalsPINVOKE.OdGiLayerTraitsTaker_transparency(this.swigCPtr), true);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint drawFlags()
		{
			uint result = GlobalsPINVOKE.OdGiLayerTraitsTaker_drawFlags(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool selectionGeom()
		{
			bool result = GlobalsPINVOKE.OdGiLayerTraitsTaker_selectionGeom(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiSubEntityTraits.ShadowFlags shadowFlags()
		{
			OdGiSubEntityTraits.ShadowFlags result = (OdGiSubEntityTraits.ShadowFlags)GlobalsPINVOKE.OdGiLayerTraitsTaker_shadowFlags(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool sectionable()
		{
			bool result = GlobalsPINVOKE.OdGiLayerTraitsTaker_sectionable(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiSubEntityTraits.SelectionFlags selectionFlags()
		{
			OdGiSubEntityTraits.SelectionFlags result = (OdGiSubEntityTraits.SelectionFlags)GlobalsPINVOKE.OdGiLayerTraitsTaker_selectionFlags(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setTrueColor(OdCmEntityColor color)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setTrueColor(this.swigCPtr, OdCmEntityColor.getCPtr(color));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setColor(ushort color)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setColor__SWIG_1(this.swigCPtr, color);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setLayer(OdDbStub layerId)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setLayer(this.swigCPtr, OdDbStub.getCPtr(layerId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setLineType(OdDbStub lineTypeId)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setLineType(this.swigCPtr, OdDbStub.getCPtr(lineTypeId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setFillType(OdGiFillType fillType)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setFillType(this.swigCPtr, (int)fillType);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setLineWeight(LineWeight lineWeight)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setLineWeight(this.swigCPtr, (int)lineWeight);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setLineTypeScale(double lineTypeScale)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setLineTypeScale(this.swigCPtr, lineTypeScale);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setThickness(double thickness)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setThickness(this.swigCPtr, thickness);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setSelectionMarker(IntPtr selectionMarker)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setSelectionMarker(this.swigCPtr, selectionMarker);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new void setMaterial(OdDbStub pMaterialId)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setMaterial(this.swigCPtr, OdDbStub.getCPtr(pMaterialId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setMapper(OdGiMapper pMapper)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setMapper(this.swigCPtr, OdGiMapper.getCPtr(pMapper));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setVisualStyle(OdDbStub visualStyleId)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setVisualStyle(this.swigCPtr, OdDbStub.getCPtr(visualStyleId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new void setTransparency(OdCmTransparency transparency)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setTransparency(this.swigCPtr, OdCmTransparency.getCPtr(transparency));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setDrawFlags(uint drawFlags)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setDrawFlags(this.swigCPtr, drawFlags);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setSelectionGeom(bool bSelectionFlag)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setSelectionGeom(this.swigCPtr, bSelectionFlag);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setShadowFlags(OdGiSubEntityTraits.ShadowFlags shadowFlags)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setShadowFlags(this.swigCPtr, (int)shadowFlags);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setSectionable(bool bSectionableFlag)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setSectionable(this.swigCPtr, bSectionableFlag);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setSelectionFlags(OdGiSubEntityTraits.SelectionFlags selectionFlags)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setSelectionFlags(this.swigCPtr, (int)selectionFlags);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdCmEntityColor secondaryTrueColor()
		{
			OdCmEntityColor result = new OdCmEntityColor(GlobalsPINVOKE.OdGiLayerTraitsTaker_secondaryTrueColor(this.swigCPtr), true);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setSecondaryTrueColor(OdCmEntityColor color)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setSecondaryTrueColor(this.swigCPtr, OdCmEntityColor.getCPtr(color));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiDgLinetypeModifiers lineStyleModifiers()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiLayerTraitsTaker_lineStyleModifiers(this.swigCPtr);
			OdGiDgLinetypeModifiers result = (intPtr == IntPtr.Zero) ? null : new OdGiDgLinetypeModifiers(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setLineStyleModifiers(OdGiDgLinetypeModifiers pLSMod)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setLineStyleModifiers(this.swigCPtr, OdGiDgLinetypeModifiers.getCPtr(pLSMod));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiRegenType regenType()
		{
			OdGiRegenType result = (OdGiRegenType)GlobalsPINVOKE.OdGiLayerTraitsTaker_regenType(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool regenAbort()
		{
			bool result = GlobalsPINVOKE.OdGiLayerTraitsTaker_regenAbort(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiSubEntityTraits subEntityTraits()
		{
			OdGiSubEntityTraits result = (OdGiSubEntityTraits)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiLayerTraitsTaker_subEntityTraits(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiGeometry rawGeometry()
		{
			OdGiGeometry result = (OdGiGeometry)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiLayerTraitsTaker_rawGeometry(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool isDragging()
		{
			bool result = GlobalsPINVOKE.OdGiLayerTraitsTaker_isDragging(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual double deviation(OdGiDeviationType deviationType, OdGePoint3d pointOnCurve)
		{
			double result = GlobalsPINVOKE.OdGiLayerTraitsTaker_deviation(this.swigCPtr, (int)deviationType, OdGePoint3d.getCPtr(pointOnCurve));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint numberOfIsolines()
		{
			uint result = GlobalsPINVOKE.OdGiLayerTraitsTaker_numberOfIsolines(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiContext context()
		{
			OdGiContext result = (OdGiContext)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiLayerTraitsTaker_context(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiViewport viewport()
		{
			OdGiViewport result = (OdGiViewport)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiLayerTraitsTaker_viewport(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint sequenceNumber()
		{
			uint result = GlobalsPINVOKE.OdGiLayerTraitsTaker_sequenceNumber(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool isValidId(uint viewportId)
		{
			bool result = GlobalsPINVOKE.OdGiLayerTraitsTaker_isValidId(this.swigCPtr, viewportId);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdDbStub viewportObjectId()
		{
			IntPtr intPtr = GlobalsPINVOKE.OdGiLayerTraitsTaker_viewportObjectId(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void pline(OdGiPolyline arg0, uint arg1, uint arg2)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_pline(this.swigCPtr, OdGiPolyline.getCPtr(arg0), arg1, arg2);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGeMatrix3d getModelToWorldTransform()
		{
			OdGeMatrix3d result = new OdGeMatrix3d(GlobalsPINVOKE.OdGiLayerTraitsTaker_getModelToWorldTransform(this.swigCPtr), true);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGeMatrix3d getWorldToModelTransform()
		{
			OdGeMatrix3d result = new OdGeMatrix3d(GlobalsPINVOKE.OdGiLayerTraitsTaker_getWorldToModelTransform(this.swigCPtr), true);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void pushModelTransform(OdGeVector3d vNormal)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_pushModelTransform__SWIG_0(this.swigCPtr, OdGeVector3d.getCPtr(vNormal));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void pushModelTransform(OdGeMatrix3d xMat)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_pushModelTransform__SWIG_1(this.swigCPtr, OdGeMatrix3d.getCPtr(xMat));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void popModelTransform()
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_popModelTransform(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void circle(OdGePoint3d center, double radius, OdGeVector3d normal)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_circle__SWIG_0(this.swigCPtr, OdGePoint3d.getCPtr(center), radius, OdGeVector3d.getCPtr(normal));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void circle(OdGePoint3d p1, OdGePoint3d p2, OdGePoint3d p3)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_circle__SWIG_1(this.swigCPtr, OdGePoint3d.getCPtr(p1), OdGePoint3d.getCPtr(p2), OdGePoint3d.getCPtr(p3));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void circularArc(OdGePoint3d center, double radius, OdGeVector3d normal, OdGeVector3d startVector, double sweepAngle, OdGiArcType arcType)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_circularArc__SWIG_0(this.swigCPtr, OdGePoint3d.getCPtr(center), radius, OdGeVector3d.getCPtr(normal), OdGeVector3d.getCPtr(startVector), sweepAngle, (int)arcType);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void circularArc(OdGePoint3d center, double radius, OdGeVector3d normal, OdGeVector3d startVector, double sweepAngle)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_circularArc__SWIG_1(this.swigCPtr, OdGePoint3d.getCPtr(center), radius, OdGeVector3d.getCPtr(normal), OdGeVector3d.getCPtr(startVector), sweepAngle);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void circularArc(OdGePoint3d start, OdGePoint3d point, OdGePoint3d end, OdGiArcType arcType)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_circularArc__SWIG_2(this.swigCPtr, OdGePoint3d.getCPtr(start), OdGePoint3d.getCPtr(point), OdGePoint3d.getCPtr(end), (int)arcType);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void circularArc(OdGePoint3d start, OdGePoint3d point, OdGePoint3d end)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_circularArc__SWIG_3(this.swigCPtr, OdGePoint3d.getCPtr(start), OdGePoint3d.getCPtr(point), OdGePoint3d.getCPtr(end));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void polyline(OdGePoint3d[] nbPoints, OdGeVector3d pNormal, IntPtr lBaseSubEntMarker)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(nbPoints);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_polyline__SWIG_0(this.swigCPtr, intPtr, OdGeVector3d.getCPtr(pNormal), lBaseSubEntMarker);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void polyline(OdGePoint3d[] nbPoints, OdGeVector3d pNormal)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(nbPoints);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_polyline__SWIG_1(this.swigCPtr, intPtr, OdGeVector3d.getCPtr(pNormal));
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void polyline(OdGePoint3d[] nbPoints)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(nbPoints);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_polyline__SWIG_2(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void polygon(OdGePoint3d[] nbPoints)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(nbPoints);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_polygon(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void mesh(MeshData rows)
		{
			IntPtr intPtr = Helpers.MarshalMeshData(rows);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_mesh(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void shell(ShellData nbVertex)
		{
			IntPtr intPtr = Helpers.MarshalShellData(nbVertex);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_shell(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void text(OdGePoint3d position, OdGeVector3d normal, OdGeVector3d direction, double height, double width, double oblique, string msg)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_text__SWIG_0(this.swigCPtr, OdGePoint3d.getCPtr(position), OdGeVector3d.getCPtr(normal), OdGeVector3d.getCPtr(direction), height, width, oblique, msg);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void text(OdGePoint3d position, OdGeVector3d normal, OdGeVector3d direction, string msg, bool raw, OdGiTextStyle pTextStyle)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_text__SWIG_1(this.swigCPtr, OdGePoint3d.getCPtr(position), OdGeVector3d.getCPtr(normal), OdGeVector3d.getCPtr(direction), msg, raw, OdGiTextStyle.getCPtr(pTextStyle));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void ray(OdGePoint3d first, OdGePoint3d second)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_ray(this.swigCPtr, OdGePoint3d.getCPtr(first), OdGePoint3d.getCPtr(second));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void nurbs(OdGeNurbCurve3d nurbs)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_nurbs(this.swigCPtr, OdGeNurbCurve3d.getCPtr(nurbs));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void xline(OdGePoint3d p1, OdGePoint3d p2)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_xline(this.swigCPtr, OdGePoint3d.getCPtr(p1), OdGePoint3d.getCPtr(p2));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void ellipArc(OdGeEllipArc3d arc, OdGePoint3d[] pEndPointsOverrides, OdGiArcType arcType)
		{
			IntPtr intPtr = Helpers.MarshalPointPair(pEndPointsOverrides);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_ellipArc__SWIG_0(this.swigCPtr, OdGeEllipArc3d.getCPtr(arc), intPtr, (int)arcType);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				if (intPtr != IntPtr.Zero)
				{
					Marshal.FreeCoTaskMem(intPtr);
				}
			}
		}

		public virtual void ellipArc(OdGeEllipArc3d arc, OdGePoint3d[] pEndPointsOverrides)
		{
			IntPtr intPtr = Helpers.MarshalPointPair(pEndPointsOverrides);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_ellipArc__SWIG_1(this.swigCPtr, OdGeEllipArc3d.getCPtr(arc), intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				if (intPtr != IntPtr.Zero)
				{
					Marshal.FreeCoTaskMem(intPtr);
				}
			}
		}

		public virtual void ellipArc(OdGeEllipArc3d arc)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_ellipArc__SWIG_2(this.swigCPtr, OdGeEllipArc3d.getCPtr(arc));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void draw(OdGiDrawable pD)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_draw(this.swigCPtr, OdGiDrawable.getCPtr(pD));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void pushClipBoundary(OdGiClipBoundary pBoundary)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_pushClipBoundary(this.swigCPtr, OdGiClipBoundary.getCPtr(pBoundary));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void popClipBoundary()
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_popClipBoundary(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void worldLine(OdGePoint3d pnts)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_worldLine(this.swigCPtr, OdGePoint3d.getCPtr(pnts));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void image(OdGiImageBGRA32 img, OdGePoint3d origin, OdGeVector3d uVec, OdGeVector3d vVec, OdGiRasterImage.TransparencyMode trpMode)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_image__SWIG_0(this.swigCPtr, OdGiImageBGRA32.getCPtr(img), OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(uVec), OdGeVector3d.getCPtr(vVec), (int)trpMode);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void image(OdGiImageBGRA32 img, OdGePoint3d origin, OdGeVector3d uVec, OdGeVector3d vVec)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_image__SWIG_1(this.swigCPtr, OdGiImageBGRA32.getCPtr(img), OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(uVec), OdGeVector3d.getCPtr(vVec));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setExtents(OdGePoint3d newExtents)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_setExtents(this.swigCPtr, OdGePoint3d.getCPtr(newExtents));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void polylineEye(OdGePoint3d[] numVertices)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_polylineEye(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void polygonEye(OdGePoint3d[] numVertices)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_polygonEye(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void polylineDc(OdGePoint3d[] numVertices)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_polylineDc(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void polygonDc(OdGePoint3d[] numVertices)
		{
			IntPtr intPtr = Teigha.Core.Helpers.MarshalPoint3dArray(numVertices);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_polygonDc(this.swigCPtr, intPtr);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void rasterImageDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiRasterImage pImage, OdGePoint2d[] uvBoundary, bool transparency, double brightness, double contrast, double fade)
		{
			IntPtr intPtr = Helpers.MarshalPoint2dArray(uvBoundary);
			try
			{
				GlobalsPINVOKE.OdGiLayerTraitsTaker_rasterImageDc(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiRasterImage.getCPtr(pImage), intPtr, transparency, brightness, contrast, fade);
				if (GlobalsPINVOKE.SWIGPendingException.Pending)
				{
					throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
				}
			}
			finally
			{
				Marshal.FreeCoTaskMem(intPtr);
			}
		}

		public virtual void metafileDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiMetafile pMetafile, bool dcAligned, bool allowClipping)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_metafileDc__SWIG_0(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiMetafile.getCPtr(pMetafile), dcAligned, allowClipping);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void metafileDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiMetafile pMetafile, bool dcAligned)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_metafileDc__SWIG_1(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiMetafile.getCPtr(pMetafile), dcAligned);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void metafileDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiMetafile pMetafile)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_metafileDc__SWIG_2(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiMetafile.getCPtr(pMetafile));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void ownerDrawDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiSelfGdiDrawable pDrawable, bool dcAligned, bool allowClipping)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_ownerDrawDc__SWIG_0(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiSelfGdiDrawable.getCPtr(pDrawable), dcAligned, allowClipping);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void ownerDrawDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiSelfGdiDrawable pDrawable, bool dcAligned)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_ownerDrawDc__SWIG_1(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiSelfGdiDrawable.getCPtr(pDrawable), dcAligned);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void ownerDrawDc(OdGePoint3d origin, OdGeVector3d u, OdGeVector3d v, OdGiSelfGdiDrawable pDrawable)
		{
			GlobalsPINVOKE.OdGiLayerTraitsTaker_ownerDrawDc__SWIG_2(this.swigCPtr, OdGePoint3d.getCPtr(origin), OdGeVector3d.getCPtr(u), OdGeVector3d.getCPtr(v), OdGiSelfGdiDrawable.getCPtr(pDrawable));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public static IntPtr OdGiLayerTraitsTaker_OdGiViewportDraw__Upcast(IntPtr ptr)
		{
			IntPtr result = GlobalsPINVOKE.OdGiLayerTraitsTaker_OdGiLayerTraitsTaker_OdGiViewportDraw__Upcast(ptr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public static IntPtr OdGiLayerTraitsTaker_OdGiSubEntityTraits_Upcast(IntPtr ptr)
		{
			IntPtr result = GlobalsPINVOKE.OdGiLayerTraitsTaker_OdGiLayerTraitsTaker_OdGiSubEntityTraits_Upcast(ptr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		private object locker = new object();

		private HandleRef swigCPtr;

		private OdGiSubEntityTraits pSETraits;
	}
}
